Communication networks support a multitude of communications between parties. Such communications include voice, data, video, multi-media, e-mail, etc. To initiate a communication, an originating party transmits a communication request, which includes the identity of the originating party, the identity of the destination party or parties, and the type of requested communication, to a local communication processing entity. The local communication processing entity determines, from the communication request, whether the originating party is authentic, whether it is authorized to access the requested type of communication, and whether the destination party is, or parties are, local to the local communication processing entity.
If a destination party is local, the local communication processing entity provides an incoming communication message to the destination party. The destination party responds to the incoming communication message with a communication connect message that is provided to the local communication processing entity. The local communication processing entity, in response to the communication connect message, establishes a communication path between the originating party and the destination party. In addition, the local communication processing entity supports the communication path until a communication end message is received. At this point, the local communication processing entity tears down the communication path.
If one or more of the destination parties is/are not local to the local communication processing entity, the local communication processing entity provides a connection communication setup message to the communication network. The communication network transports, via an intervening switch or a plurality of intervening switches, the communication setup message to a destination local communication processing entity that is affiliated with a destination party. The destination local communication processing entity provides the setup message to the destination party. In response, the destination party provides a communication connect message to the destination local communication processing entity. The destination local communication processing entity then provides the connect message to the originating local communication processing entity via the communication network. In turn, a communication path is established via the intervening switch or switches of the communication network between the originating and destination local processing entities.
Because the communication network can support a multitude of communications, any switch in the network may become overloaded. Such a switch may be a local communication processing entity and/or an intervening switch within the network. An overload condition may be caused by a burst of overhead data and/or sustained amount of overhead data messages that exceeds the switch's capacity. As is known, the overhead data messages include call set-up messages, connect messages, call proceeding messages, call release messages, release complete messages, and link layer information.
One technique to reduce the effects of overloading is to queue, in a first in first out (FIFO) manner, incoming overhead data messages. While FIFO queuing works well for most burst conditions, it adds a latency when the overload is a sustained overload. The latency can rise above a call set-up time-out and may even rise above a connect time out. As such, calls and/or setup messages of calls are dropped.
Another technique for reducing the effects of overloading is to use a last-in-first-out (LIFO) queuing technique as specified in Bell Core TR-PSY-000505 issue 2, section 5.3.8, July 1987. As is known, in a LIFO queuing scheme, the longer an item remains in the queue the less likely it will get processed. But newly received requests, i.e., messages, do not wait long unless it gets bumped for a newer message. As such, when the switch is in a sustained overload, some messages are dropped, but they are the oldest ones in the queue. If the dropped message is a call set-up message, the originating party's request is dropped, requiring the originating party to resend the request. If the dropped message is a connect message, the call is dropped before a communication path is established, which wastes the processing efforts of the switch to establish the call up to this point. In addition, the communication path that was at least partially established, is unusable for other communications until a time out expires. Such a time out is typically ten seconds. If the dropped message is a release message, the links, i.e., the communication resources, comprising the communication path are wasted, i.e., unavailable for reallocation, until a thirty second time out expires. If, the thirty second time-out message is also dropped, the communication resources are permanently hung up.
Another issue with LIFO queuing is multi-party calls and the addition of a party to a multi-party call. For such calls, the LIFO dequeuing process may not enqueue the multi-party call set-up messages in the proper order. As such, certain parties may not be added to the multi-party communication. For example, a typical multi-party communication is established by sending a message identifying a request for a multi-party communication and messages to add the parties. If an add party message is received before the establishment a multi-party communication message is received, the add party message will be dropped, thereby preventing the identified party from participating in the multi-party communication.
Therefore, a need exists for a method and apparatus that processes burst and overload conditions with reduced latency and without dropping messages that, when dropped, waste communication resources.